#include <stdio.h>
#define MaxSize 100
typedef int DataType;

typedef struct{/*定义顺序表类型*/
	DataType list[MaxSize];
	int size;
} SeqList;
void ListInitiate(SeqList *L)/*初始化顺序表L*/
{
	L->size = 0;/*定义初始数据元素个数*/
}
int ListLength(SeqList L)/*返回顺序表L的当前数据元素个数*/
{
	return L.size;
}
int ListInsert(SeqList *L, int i, DataType x)
	/*在顺序表L的位置i（0 ≤ i ≤ size) 前插入数据元素值 x */
	/*插入成功返回1，插入失败放回0*/
{ 
	int j;
	if(L->size>=MaxSize)
	{
		printf("顺序表已满无法插入!\n");
		return 0;}
	else if(i<0||i>L->size)
	{
		printf("参数i不合法!\n");
		return 0;}
	else{
		//此程序段有错误
		for(j = L->size;j>i;j--)
			L->list[j] = L->list[j-1];/*为插入将元素后移*/
		L->list[i] = x;/*插入数据*/
		L->size++;/*元素个数加1*/
		return 1;
	}
}
int ListDelete(SeqList *L, int i, DataType *x)
	/*删除顺序表L中位置i(0 ≤ i ≤ size-1)的数据元素并存放到参数x中*/
	/*删除成功返回1，删除失败返回0*/
{
	int j;
	if(L->size<=0)
	{
		printf("顺序表已空无数据元素可删!\n");
		return 0;}
	else if(i < 0||i >L->size-1)
	{
		printf("参数不合法！\n");
		return 0;}
	else
	{//此程序段有错
		*x =  L->list[i];/*保存删除的元素到参数x中*/
		for(j = i+1;j <= L->size-1;j++)
			L->list[j-1] = L->list[j];/*依次前移*/
		L->size--;
			return 1;
	}
}
int ListGet(SeqList L,int i, DataType *x)
	/*取顺序表中i个数据元素的值存在于x中，成功返回1，失败返回0*/
{
	if(i < 0|| i > L.size-1)
	{
		printf("参数不合法!");
		return 0;}
	else{
		*x = L.list[i];
		return 1;
	}
}
//有错误：实现函数体，实现在L内查找x
//当x存在于L中时，返回x所在的索引的最小值；
//当x不存在于L中时，返回-1
int ListSearch(SeqList L,DataType x)
{
	int i;
	for(i = 0;i < L.size;i++){
		if(L.list[i]==x){
			return i;
			break;
		}
}
return -1;
}
int main( int argc, char * argv[])
	{
		SeqList myList;
		int i,x;
		ListInitiate(&myList);
		for(i = 0;i < 10; i++)
			ListInsert(&myList,i,i+1);
			ListDelete(&myList,4,&x);
		for(i = 0; i < ListLength(myList);i++)
		{//此程序段有一处错误！
			ListGet(myList,i,&x);
			printf("%d",x);
		}
		return 0;
}//